home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / I-Info Magazine / (c)i20.d64 / b.a.sda / BANK ACCOUNTS (.txt) < prev    next >
Commodore BASIC  |  2007-02-04  |  25KB  |  771 lines

  1. 10 REM       *** BANK ACCOUNTS ***         .
  2. 11 REM      *** BY JIM ABRONSKI ***        .
  3. 12 REM     *** UPDATED  10/24/87 ***       .
  4. 14 POKE53280,0:POKE53281,0:PRINTCHR$(142)
  5. 15 PRINT"[147]":CLOSE4:OPEN15,8,15,"I0":GOTO260
  6. 20 CLR:OPEN15,8,15:CR$=CHR$(13):PO$=CHR$(16):QO$=CHR$(34)
  7. 25 DIMW$(5),N1$(19),N2$(9),M$(12),SL$(20),SP$(20),S2$(20),P4$(20)
  8. 30 DIMA1$(50),A2$(50),A3$(50),A4$(50),A5$(50),A6$(50),A7$(50),A8$(50)
  9. 31 DIMB1$(50),B2$(50),B3$(50),B4$(50),B5$(50),B6$(50),B7$(50),B8$(50)
  10. 32 DIMDA$(50),TN$(50),DE$(50),CM$(50),RM$(50),AM$(50),BA$(50),MK$(50)
  11. 33 DIMMDE$(20),MCM$(20),MRM$(20),PF$(20),LP$(20),LN$(20)
  12. 35 S7$="       ":CD$="[147]"
  13. 36 MT$="[147][154]       B A N K   A C C O U N T S       "
  14. 55 SL$(1)=" CHECKING ACCOUNT #1 "
  15. 60 SL$(2)=" CHECKING ACCOUNT #2 "
  16. 65 SL$(3)=" SAVINGS ACCOUNT "
  17. 70 SL$(4)=" START A NEW ACCOUNT "
  18. 75 SL$(5)=" CHANGE PASSWORD "
  19. 80 SL$(6)=" ACCESS UTILITIES "
  20. 81 SL$(7)=" READ DOCUMENTATION "
  21. 83 SL$(8)=" EXIT TO BASIC ":AN=1:UP$="[145]":DN$="":C5$="":EI=0
  22. 85 C1$="":C2$="[154]":MN=8:C3$="[145][145][145][145][145][145][145][145][145][145][145][145][145][145][145]":C4$=""
  23. 90 PRINTMT$;DN$:GOSUB3720
  24. 120 A=AN:ON A GOTO875,875,875,455,395,150,153,154
  25. 150 GOTO3702
  26. 153 GOTO3710
  27. 154 PRINT"[158]  LEAVE QUICKLOAD WEDGE IN PLACE? (Y[158]/N[158])[145][145]"
  28. 155 GETAN$:IFAN$=""THEN155
  29. 156 IFAN$="N"THENSYS64738
  30. 157 IFAN$<>"Y"THEN155
  31. 158 PRINT"[147]**** [158]COMMODORE 64 BASIC V2 ****"
  32. 159 PRINT"[154]64K RAM SYSTEM  37895[154] BASIC BYTES FREE":NEW
  33. 160 LL=31:PRINT"  >";
  34. 165 OPEN9,0:AN$="":BN$="":POKE204,0
  35. 170 GET#9,BN$:IFBN$=""THEN170
  36. 175 IFBN$=CHR$(13)THENBN$="":CLOSE9:PRINT" ":POKE204,1:RETURN
  37. 180 IFBN$=""ORBN$="[157]"ORBN$="[145]"ORBN$=""THENGOTO170
  38. 185 IFBN$=""ORBN$="[147]"ORBN$=CHR$(34)THEN170
  39. 190 IFLEN(AN$)=LLTHENPRINT" ":PRINT"";LL;"LETTER LIMIT.":BN$=CHR$(13):GOTO175
  40. 195 IFAN$=""ANDBN$=CHR$(20)THEN170
  41. 200 IFBN$=CHR$(20)THENPRINT" [157][157] [157]";:AN$=LEFT$(AN$,LEN(AN$)-1):GOTO170
  42. 205 AN$=AN$+BN$:PRINTBN$;:GOTO170
  43. 210 P=0:OPEN4,4
  44. 220 PRINT#4:IFNOTPEEK(144)AND128THENCLOSE4:GOTO240
  45. 225 PRINT"  ***[158] PLEASE TURN THE PRINTER ON ***":P=P+1
  46. 230 IFP>999THENCLOSE4:GOTO255
  47. 235 GOTO220
  48. 240 IFP>0THENPRINT"           ***[158] THANK YOU ***":P=0:RETURN
  49. 245 RETURN
  50. 250 PRINT"[158]  PRESS  RETURN [146][158] WHEN READY TO PRINT"
  51. 255 PRINT"[158]    (PRESS 'A[158]' TO ABORT PRINTING)":P=0:RETURN
  52. 260 OPEN8,8,8,"MO.BILLS 3,S,R"
  53. 265 GOSUB2920
  54. 270 INPUT#8,PW$
  55. 275 RS=ST:GOSUB2920:GOSUB2927
  56. 295 CLOSE8
  57. 305 IFGG=1THENRETURN
  58. 310 E=1:POKE808,234
  59. 312 PRINT"[147][154]       B A N K   A C C O U N T S       "
  60. 314 PRINT"[158]     PLEASE ENTER YOUR PASSWORD,"
  61. 316 INPUT"[158]        THEN PRESS  RETURN [146][144]";P$
  62. 320 IFP$=PW$THENPOKE808,237:GOTO20
  63. 325 IF E=3THENE=1:GOTO340
  64. 330 PRINTTAB(10)" INVALID PASSWORD.":PRINTTAB(10)"  TYPE CAREFULLY. "
  65. 335 E=E+1:FORT=1TO999:NEXTT:GOTO312
  66. 340 ME$="UNAUTHORIZED ENTRY ATTEMPT....ACCESS DENIED....LOADING DOCUMENTATION."
  67. 345 SP$="                    "
  68. 350 ME$=SP$+SP$+ME$+" ":X9=1
  69. 355 CP$=""
  70. 360 FORXX=1TO50:NEXT
  71. 365 PRINT"";CP$;MID$(ME$,X9,38);CHR$(19)
  72. 370 X9=X9+1:IFX9>LEN(ME$)THENX9=1
  73. 375 IFX9=1ANDRE=0THENPOKE808,237:GOTO153
  74. 380 IFPEEK(203)=64THEN360
  75. 385 PRINTCP$;LEFT$(SP$+SP$,38);CHR$(19)
  76. 390 GOTO312
  77. 395 PRINT"[147][154]     C H A N G E   P A S S W O R D   "
  78. 400 GG=1:GOSUB260
  79. 405 PRINT"[158] CURRENT PASSWORD IS: ";PW$
  80. 410 INPUT"[158] ENTER DESIRED PASSWORD:";PW$
  81. 415 OPEN8,8,8,"@0:MO.BILLS 3,S,W"
  82. 420 GOSUB2920
  83. 425 PRINT#8,PW$
  84. 430 GOSUB2920
  85. 435 CLOSE8
  86. 440 PRINT" YOUR NEW PASSWORD HAS BEEN RECORDED."
  87. 445 FOR T=1TO2000:NEXTT:GOTO20
  88. 455 OPEN8,8,8,"ACCT.INFO.,S,R"
  89. 460 GOSUB2920
  90. 465 INPUT#8,NA$(1),BN$(1),AC$(1)
  91. 470 INPUT#8,NA$(2),BN$(2),AC$(2)
  92. 475 INPUT#8,NA$(3),BN$(3),AC$(3)
  93. 480 RS=ST:GOSUB2920:GOSUB2927
  94. 500 CLOSE8
  95. 515 PRINT"[147][154]          START A NEW ACCOUNT   "
  96. 520 PRINT"[158]STATUS OF CURRENT BANK ACCOUNTS:"
  97. 525 PRINT"(1) CHECKING ACCOUNT #1:"
  98. 530 PRINTTAB(7)""NA$(1)
  99. 535 IF NA$(1)="INACTIVE"THEN550
  100. 540 PRINTTAB(7)BN$(1)
  101. 545 PRINTTAB(7)"ACCT # "AC$(1)
  102. 550 PRINT"(2) CHECKING ACCOUNT #2:"
  103. 555 PRINTTAB(7)""NA$(2)
  104. 560 IF NA$(2)="INACTIVE"THEN575
  105. 565 PRINTTAB(7)BN$(2)
  106. 570 PRINTTAB(7)"ACCT # "AC$(2)
  107. 575 PRINT"(3) SAVINGS ACCOUNT"
  108. 580 PRINTTAB(7)""NA$(3)
  109. 585 IF NA$(3)="INACTIVE"THEN600
  110. 590 PRINTTAB(7)BN$(3)
  111. 595 PRINTTAB(7)"ACCT # "AC$(3)
  112. 600 PRINT"[158]WHICH ACCOUNT (1-3[158]) DO YOU WISH TO USE?"
  113. 605 PRINT"[158] (JUST  RETURN [146][158] TO RETURN TO MENU)[145]"
  114. 610 GOSUB3690
  115. 615 IFAN$=CHR$(13)THEN20
  116. 620 IFVAL(AN$)>3THEN610
  117. 625 A=VAL(AN$):IFAC$(A)="INACTIVE"THEN665
  118. 630 PRINT"[147][158]THAT ACCOUNT IS ALREADY IN USE."
  119. 635 PRINT"DO YOU WISH TO CHANGE THE ACCOUNT"
  120. 645 PRINT"INFORMATION FOR THIS ACCOUNT? (Y[158]/N[158])"
  121. 650 GOSUB3690
  122. 655 IFAN$="N"THEN515
  123. 660 IFAN$<>"Y"THEN650
  124. 665 IFA=3THEN680
  125. 670 PRINT"[147][154]    ACCT. INFO. CHECKING ACCOUNT #"A"[157]   [146]"
  126. 675 GOTO690
  127. 680 PRINT"[147][154]       ACCT. INFO. SAVINGS ACCOUNT     "
  128. 685 BL$="                                      "
  129. 690 PRINT"[158]IN WHAT NAME WILL THIS ACCOUNT BE IN?"
  130. 695 GOSUB160:SU$(1)=AN$
  131. 700 PRINT"[158]WHAT'S THE FINANCIAL INSTITUTION'S NAME?"
  132. 705 GOSUB160:SU$(2)=AN$
  133. 710 PRINT"[158]WHAT IS YOUR ACCOUNT NUMBER?"
  134. 715 GOSUB160:SU$(3)=AN$
  135. 720 PRINT"[158]IS THE ABOVE INFORMATION CORRECT? (Y[158]/N[158])"
  136. 725 PRINT"      (ENTER 'A[158]' TO ABORT)"
  137. 730 GOSUB3690
  138. 735 IF AN$="N"THEN665
  139. 740 IFAN$="A"THEN20
  140. 745 IFAN$<>"Y"THEN730
  141. 747 NA$(A)=SU$(1):BN$(A)=SU$(2):AC$(A)=SU$(3)
  142. 750 OPEN8,8,8,"@0:ACCT.INFO.,S,W"
  143. 755 GOSUB2920
  144. 760 FORX=1TO3
  145. 770 PRINT#8,QO$+NA$(X)+QO$;CR$;QO$+BN$(X)+QO$;CR$;QO$+AC$(X)+QO$
  146. 785 NEXTX:GOSUB2920
  147. 790 CLOSE8
  148. 865 PRINT"  *** [158]YOUR NEW ACCOUNT IS NOW OPEN ***"
  149. 870 FORT=1TO2000:NEXTT:GOTO20
  150. 875 PRINTCD$;"      *** [158]LOADING ACCOUNT #";A;"***"
  151. 876 REG$="REGISTER"+STR$(A):GOSUB2950:IFQ=0THENGOSUB886
  152. 877 IFNA$(A)="INACTIVE"THEN665
  153. 880 TD$=DA$(Q):IFTD$=""THENTD$="  /  /  "
  154. 882 GOTO930
  155. 885 IFAI=1THENRETURN
  156. 886 PRINTCD$;"      *** [158]LOADING ACCOUNT INFO. ***[145][145]"
  157. 887 OPEN8,8,8,"ACCT.INFO.,S,R"
  158. 890 GOSUB2920
  159. 895 FORX=1TO3
  160. 900 INPUT#8,NA$(X),BN$(X),AC$(X)
  161. 905 NEXTX:GOSUB2920
  162. 925 CLOSE8:AI=1:RETURN
  163. 930 PRINTMT$
  164. 960 SL$(1)=" VIEW YOUR REGISTER "
  165. 965 SL$(2)=" MAKE A DEPOSIT "
  166. 970 SL$(3)=" MAKE A WITHDRAWAL "
  167. 975 SL$(4)=" YOUR MONTHLY BILLS "
  168. 980 SL$(5)=" MISCELLANEOUS CHECKS "
  169. 985 SL$(6)=" PRINTOUT REGISTER "
  170. 990 SL$(7)=" BALANCE YOUR ACCOUNT "
  171. 995 SL$(8)=" USE ARCHIVE FILER "
  172. 997 SL$(9)=" TRANSACTION EDITOR "
  173. 1000 SL$(10)=" LEAVE THIS ACCOUNT "
  174. 1003 S5$=""
  175. 1005 C3$="[145][145][145][145][145][145][145][145][145][145][145][145][145][145][145][145][145][145][145]":C4$="":MN=10:AN=1:C5$=""
  176. 1010 IFA=3THEN:C3$="[145][145][145][145][145][145][145][145][145][145][145][145][145][145][145]":C4$="":MN=8
  177. 1025 IFA=3THENFORX=4TO8:SL$(X)=SL$(X+2):NEXTX
  178. 1030 GOSUB3720
  179. 1032 IFA=3ANDAN>3THENAN=AN+2
  180. 1033 IFAN>5ORAN=1THEN1065
  181. 1034 IFAN=4THEN1065
  182. 1035 IFQ<48THEN1065
  183. 1040 PRINTCD$;"[145][145][145][158]THE REGISTER IS NOW AT MAXIMUM CAPACITY."
  184. 1045 PRINT"[154] BALANCE YOUR ACCOUNT [146][158] IF NECESSARY,"
  185. 1050 PRINT"[158]THEN [154] USE ARCHIVE FILER [146][158] TO REDUCE"
  186. 1052 PRINT"[158]YOUR CURRENT REGISTER SIZE.":FORT=1TO6000:NEXTT:GOTO930
  187. 1065 ON AN GOTO2355,1180,1185,1360,1670,2535,2645,1825,3800,1100
  188. 1100 IFLA$<>"S"THEN1115
  189. 1105 PRINTCD$;"        *** [158]SAVING REGISTER ***"
  190. 1110 REG$="REGISTER"+STR$(A):GOSUB3035
  191. 1115 IFSV<>1THEN20
  192. 1120 PRINTCD$;"      *** [158]SAVING MONTHLY BILLS ***"
  193. 1125 GOSUB3165:GOTO20
  194. 1180 DW$="DEPOSIT":D1$="PAYCHECK":D2$="D":D3$=LD$:GOTO1190
  195. 1185 DW$="WITHDRAWAL":D1$="CASH":D2$="W":D3$=LW$
  196. 1190 PRINT"[147][154]            MAKE A ";DW$;"   "
  197. 1195 GOSUB2495:Q=Q+1
  198. 1200 PRINT"[158]ENTER DATE OF ";DW$;" (MO/DA/YR[158]):"
  199. 1210 PRINT"";TD$:INPUT"[145]";DA$(Q)
  200. 1220 TD$=DA$(Q):PRINT"[158]ENTER AMOUNT OF ";DW$":"
  201. 1225 INPUT"$[157][157]";AM$(Q):Z$=AM$(Q):GOSUB2455:AM$(Q)=Z$
  202. 1230 PRINT"[158]ENTER MEMO FOR REGISTER IF DESIRED:"
  203. 1235 PRINT"";D1$:INPUT"[145]";RM$(Q)
  204. 1240 DE$(Q)=DW$:CM$(Q)=" ":TN$(Q)=D2$+RIGHT$(STR$(VAL(D3$)+1),3)
  205. 1245 MK$(Q)=" ":BA=VAL(BA$(Q-1)):AM=VAL(AM$(Q)):IFD2$="W"THEN1250
  206. 1246 BS=BA+AM:BA$(Q)=STR$(BS)
  207. 1247 D=LEN(TN$(Q)):D=D-1:LD$=RIGHT$(TN$(Q),D)
  208. 1248 GOTO1255
  209. 1250 BS=BA-AM:BA$(Q)=STR$(BS)
  210. 1252 W=LEN(TN$(Q)):W=W-1:LW$=RIGHT$(TN$(Q),W)
  211. 1255 Z$=BA$(Q):GOSUB2455:BA$(Q)=Z$
  212. 1256 PRINT"YOUR ";DW$;" HAS BEEN RECORDED UNDER"
  213. 1260 PRINT"TRANSACTION # "TN$(Q)
  214. 1270 GOSUB1750:GOTO930
  215. 1360 IFMS=1THEN1400
  216. 1365 PRINTCD$;"      ***[158] LOADING MONTHLY BILLS ***"
  217. 1366 BILLS$="MO.BILLS"+STR$(A):GOSUB3095:MS=1:GOTO1400
  218. 1370 PRINT"[147][154]       M O N T H L Y   B I L L S   "
  219. 1375 PRINT"[158]NAME OF BILL:               DATE PAID:"
  220. 1380 FORX=1TOM
  221. 1390 PRINT"  "MDE$(X)
  222. 1395 PRINTTAB(31)"[145]"PF$(X)"[157]":NEXTX
  223. 1397 PRINT"[158]      ( ANY KEY[158] RETURNS TO MENU )"
  224. 1398 GETAN$:IFAN$=""THEN1398
  225. 1400 PRINT"[147][154]       M O N T H L Y   B I L L S   "
  226. 1401 SL$(1)=" PAY A MONTHLY BILL "
  227. 1402 SL$(2)=" VIEW MONTHLY BILLS "
  228. 1403 SL$(3)=" ADD A MONTHLY BILL "
  229. 1404 SL$(4)=" DELETE A MONTHLY BILL "
  230. 1405 SL$(5)=" PRINT BILLS SUMMARY "
  231. 1406 SL$(6)=" RETURN TO MAIN MENU "
  232. 1415 AN=1:MN=6:C3$="[145][145][145][145][145][145][145][145][145][145][145]":C4$="":C5$="":GOSUB3720
  233. 1435 ON AN GOTO4200,1370,1545,4200,4100,930
  234. 1470 IFAN=MNTHEN1400
  235. 1472 IFQ>47THEN1040
  236. 1475 B=AN:Q=Q+1:DE$(Q)=MDE$(B):CM$(Q)=MCM$(B):MK$(Q)=" ":RM$(Q)=MRM$(B)
  237. 1480 PRINT"[147][154]   MONTHLY BILL TO PAY : "
  238. 1485 PRINT"   "DE$(Q):PRINT"    "CM$(Q):PRINT"    "RM$(Q)
  239. 1490 PRINT"[158]ENTER DATE OF CHECK (MO/DA/YR[158]):"
  240. 1500 PRINT"";TD$:INPUT"[145]";DA$(Q):PF$(B)=DA$(Q):TD$=DA$(Q)
  241. 1505 IFLEFT$(RIGHT$(LP$(B),3),1)<>"."THENLP$(B)=""
  242. 1510 PRINT"[158]ENTER AMOUNT OF CHECK:":PRINT"     ";LP$(B);"[145]"
  243. 1515 INPUT"$[157][157]";AM$(Q):Z$=AM$(Q):GOSUB2455:AM$(Q)=Z$:LP$(B)=AM$(Q)
  244. 1535 GOSUB1760:LN$(B)=TN$(Q):PF$(B)=DA$(Q):GOSUB1750
  245. 1540 SV=1:LA$="S":GOTO1400
  246. 1545 PRINT"[147]       [154]   ADD A MONTHLY BILL   "
  247. 1546 IFM<18THEN1550
  248. 1547 PRINT"[150]MONTHLY BILLS FILE IS AT MAXIMUM SIZE."
  249. 1548 PRINT"YOU MUST NOW DELETE A BILL TO ADD ONE."
  250. 1549 FORT=1TO5000:NEXTT:GOTO1360
  251. 1550 PRINT"[158]PLEASE ENTER THE EXACT NAME TO WHICH"
  252. 1555 PRINT"CHECKS WILL BE WRITTEN:"
  253. 1560 GOSUB160:MDE$(M+1)=AN$
  254. 1565 PRINT"[158]PLEASE ENTER THE MEMO TO BE RECORDED"
  255. 1570 PRINT"ON THE CHECKS (ACCOUNT #[158]):"
  256. 1575 GOSUB160:MCM$(M+1)=AN$
  257. 1580 PRINT"[158]PLEASE ENTER THE MEMO TO BE RECORDED"
  258. 1585 PRINT"IN THE CHECKBOOK REGISTER:"
  259. 1590 GOSUB160:MRM$(M+1)=AN$
  260. 1595 PF$(M+1)=" UNPAID ":LP$(M+1)="":LN$(M+1)="NONE"
  261. 1600 PRINT"[158]IS THE ABOVE INFORMATION CORRECT? (Y[158]/N[158])"
  262. 1605 GOSUB3690
  263. 1610 IFAN$="Y"THENM=M+1:MB$=STR$(M):SV=1:GOTO1400
  264. 1615 IFAN$<>"N"THEN1605
  265. 1620 GOTO1545
  266. 1625 IFAN=MNTHEN1400
  267. 1640 SV=1:DM=AN:IFDM=MTHEN1665
  268. 1645 FORX=1TOM-1
  269. 1650 IFX<DMTHEN1660
  270. 1655 MDE$(X)=MDE$(X+1):MCM$(X)=MCM$(X+1):MRM$(X)=MRM$(X+1):PF$(X)=PF$(X+1)
  271. 1660 NEXTX
  272. 1665 M=M-1:MB$=STR$(M):GOTO1400
  273. 1670 PRINT"[147][154]         MISCELLANEOUS CHECKS   "
  274. 1675 GOSUB2495:Q=Q+1
  275. 1680 PRINT"[158]ENTER DATE OF CHECK (MO/DA/YR[158]):"
  276. 1690 PRINT"     ";TD$:INPUT"[145]   ";DA$(Q):TD$=DA$(Q)
  277. 1705 PRINT"[158]ENTER TO WHOM CHECK WILL BE WRITTEN:"
  278. 1710 GOSUB160:DE$(Q)=AN$
  279. 1715 PRINT"[158]ENTER THE AMOUNT OF THE CHECK:"
  280. 1720 INPUT"    $[157][157]";AM$(Q):Z$=AM$(Q):GOSUB2455:AM$(Q)=Z$
  281. 1725 PRINT"[158]ENTER MEMO FOR THE CHECK (ACCOUNT #[158]):"
  282. 1730 GOSUB160:CM$(Q)=AN$
  283. 1735 PRINT"[158]ENTER A MEMO FOR THE REGISTER:"
  284. 1740 GOSUB160:RM$(Q)=AN$
  285. 1745 MK$(Q)=" ":GOSUB1760:GOSUB1750:GOTO1755
  286. 1750 PRINT"[158]YOUR ACCOUNT BALANCE IS NOW $"BA$(Q)"[145][145]"
  287. 1752 FORT=1TO2000:NEXTT:RETURN
  288. 1755 GOTO930
  289. 1760 BA=VAL(BA$(Q-1)):AM=VAL(AM$(Q)):BS=BA-AM:BA$(Q)=STR$(BS)
  290. 1765 Z$=BA$(Q):GOSUB2455:BA$(Q)=Z$
  291. 1770 TN$(Q)=STR$(VAL(LC$)+1)
  292. 1775 PRINT"[158]T0 BE PAID WITH CHECK #"TN$(Q)"[158]? (Y[158]/N[158])"
  293. 1780 GOSUB3690
  294. 1785 IFAN$="Y"THENLC$=TN$(Q):GOTO1800
  295. 1787 IFAN$<>"N"THEN1780
  296. 1790 INPUT"[145]WHAT CHECK #[158] DO YOU WANT TO USE        [157][157][157][157][157][157][157][157]";TN$(Q)
  297. 1792 IFTN$(Q)="MEMO"THEN1800
  298. 1795 LC$=TN$(Q)
  299. 1800 PRINT"[158]DO YOU WISH TO PRINT THIS CHECK? (Y[158]/N[158])"
  300. 1805 GOSUB3690
  301. 1810 IFAN$="Y"THENGOSUB3210:RETURN
  302. 1812 IFAN$<>"N"THEN1805
  303. 1815 RETURN
  304. 1825 PRINT"[147][154]       A R C H I V E   F I L E R   "
  305. 1830 SL$(1)=" SAVE A MONTH "
  306. 1835 SL$(2)=" LOAD A MONTH "
  307. 1840 SL$(3)=" RETURN TO MAIN MENU ":NF=0
  308. 1845 AN=1:MN=3:C3$="[145][145][145][145][145]":C4$="":C5$="":GOSUB3720
  309. 1870 ON AN GOTO1880,2145,930
  310. 1880 IFQ=0THENPRINT"THE REGISTER IS EMPTY.":FORT=1TO2000:NEXTT:GOTO930
  311. 1885 INPUT"[158]WHICH MONTH # (1-12[158]) TO SAVE";M$
  312. 1890 IF LEN(M$)>2ORVAL(M$)>12THENPRINT"INVALID ENTRY.[145][145][145][145][145][145]":GOTO1885
  313. 1900 IFLEN(M$)=1THENM$="0"+M$
  314. 1905 PRINT"CHECKING TRANSACTIONS...PLEASE WAIT."
  315. 1910 AR=1:FORX=1TOQ
  316. 1915 IFLEFT$(DA$(X),2)<>M$THEN1930
  317. 1920 AR=AR+1:IFMK$(X)<>"*"THEN1955
  318. 1930 NEXTX:IFAR<>1THEN1985
  319. 1935 PRINT"THERE ARE NO TRANSACTIONS FOR THAT"
  320. 1940 PRINT"MONTH IN THE CURRENT REGISTER."
  321. 1945 GOTO1965
  322. 1955 PRINT"ALL THE TRANSACTIONS IN MONTH ";M$
  323. 1960 PRINT"HAVE NOT CLEARED YOUR BANK YET."
  324. 1965 PRINT"[158]DO YOU WISH TO SAVE ANOTHER MONTH? (Y[158]/N[158])"
  325. 1970 GOSUB3690:IFAN$="Y"THEN1885
  326. 1975 IFAN$="N"THEN930
  327. 1980 GOTO1970
  328. 1985 Y=1:Z=1:FORX=1TOQ
  329. 1990 IFLEFT$(DA$(X),2)<>M$THEN2010
  330. 1995 A1$(Y)=DA$(X):A2$(Y)=TN$(X):A3$(Y)=DE$(X):A4$(Y)=CM$(X)
  331. 2000 A5$(Y)=RM$(X):A6$(Y)=AM$(X):A7$(Y)=BA$(X):A8$(Y)=MK$(X):Y=Y+1
  332. 2005 GOTO2020
  333. 2010 B1$(Z)=DA$(X):B2$(Z)=TN$(X):B3$(Z)=DE$(X):B4$(Z)=CM$(X)
  334. 2015 B5$(Z)=RM$(X):B6$(Z)=AM$(X):B7$(Z)=BA$(X):B8$(Z)=MK$(X):Z=Z+1
  335. 2020 NEXTX
  336. 2025 M$=M$+RIGHT$(A1$(1),3):PRINT"[158]SAVING REGISTER FOR MONTH ";M$
  337. 2050 REG$="ACCT."+STR$(A)+"-"+M$
  338. 2055 OPEN8,8,8,"0:"+REG$+",S,W"
  339. 2060 NF=1:GOSUB2920:IFNF=1THEN2065
  340. 2062 CLOSE8:PRINT" FILE ALREADY EXISTS ":FORT=1TO2000:NEXTT:GOTO1825
  341. 2065 QTN$=STR$(Y-1)
  342. 2070 PRINT#8,QTN$
  343. 2075 NF=0:GOSUB2920
  344. 2080 FORX=1TOY
  345. 2085 PRINT#8,A1$(X);CR$;A2$(X);CR$;QO$+A3$(X)+QO$;CR$;Q0$+A4$(X)+QO$
  346. 2090 PRINT#8,QO$+A5$(X)+QO$;CR$;A6$(X);CR$;A7$(X);CR$;A8$(X)
  347. 2095 NEXTX:GOSUB2920
  348. 2100 CLOSE8
  349. 2105 PRINT"[158]YOUR ARCHIVE FILE HAS BEEN SAVED."
  350. 2115 PRINT"ADJUSTING REGISTER...PLEASE WAIT.[145][145]"
  351. 2120 Q=Z-1:FORX=1TOQ
  352. 2125 DA$(X)=B1$(X):TN$(X)=B2$(X):DE$(X)=B3$(X):CM$(X)=B4$(X)
  353. 2130 RM$(X)=B5$(X):AM$(X)=B6$(X):BA$(X)=B7$(X):MK$(X)=B8$(X)
  354. 2135 NEXTX
  355. 2140 REG$="REGISTER"+STR$(A):LA$="S":GOTO930
  356. 2145 INPUT"[158]LOAD WHICH REGISTER (MO/YR[158])";ML$
  357. 2150 IFLEN(ML$)<>5THENPRINT"[145][145][145][145][145]":GOTO2145
  358. 2155 IFVAL(LEFT$(ML$,2))>12THEN2145
  359. 2160 IFAV=1THEN2170
  360. 2165 IFLA$="S"THENREG$="REGISTER"+STR$(A):GOSUB3035:LA$=""
  361. 2170 AV=0:REG$="ACCT."+STR$(A)+"-"+ML$
  362. 2175 OPEN8,8,8,"0:"+REG$+",S,R"
  363. 2180 NF=1:GOSUB2920:IFNF=1THEN2190
  364. 2185 CLOSE8:PRINT" FILE NOT FOUND ":FORT=1TO2000:NEXTT:GOTO1825
  365. 2190 PRINT"LOADING REGISTER FOR ";ML$
  366. 2195 INPUT#8,QTN$
  367. 2200 NF=0:GOSUB2920
  368. 2205 Q=VAL(QTN$):FORX=1TOQ
  369. 2210 INPUT#8,DA$(X),TN$(X),DE$(X),CM$(X),RM$(X),AM$(X),BA$(X),MK$(X)
  370. 2215 RS=ST
  371. 2220 GOSUB2920:GOSUB2927
  372. 2235 NEXTX:CLOSE8
  373. 2240 FORX=1TOQ:Z$=AM$(X):GOSUB2455:AM$(X)=Z$
  374. 2245 Z$=BA$(X):GOSUB2455:BA$(X)=Z$:NEXTX
  375. 2260 PRINT"[147][154]     A R C H I V E   F I L E  ";ML$;"   "
  376. 2265 SL$(1)=" VIEW THE REGISTER "
  377. 2270 SL$(2)=" PRINT THE REGISTER "
  378. 2275 SL$(3)=" LOAD ANOTHER ARCHIVE MONTH "
  379. 2280 SL$(4)=" RETURN TO CURRENT REGISTER "
  380. 2285 SL$(5)=" LEAVE THIS ACCOUNT "
  381. 2290 AN=1:MN=5:C3$="[145][145][145][145][145][145][145][145][145]":C4$="":C5$="":GOSUB3720
  382. 2315 ON AN GOTO2355,2535,2325,2345,1100
  383. 2325 AV=1:PRINT"":GOTO2145
  384. 2345 REG$="REGISTER"+STR$(A):GOSUB2950:GOTO930
  385. 2355 PRINT"[147]":POKE53281,15:BA=VAL(BA$(1))-VAL(AM$(1)):BA$(0)=STR$(BA):X=0
  386. 2360 Z$=BA$(0):GOSUB2455:BA$(0)=Z$
  387. 2365 LI$="[151] [195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195]"
  388. 2370 IFX<0THENX=0
  389. 2375 PRINT"[147][144]CURSOR UP FOR PREV.PAGE[146] BAL.FWD[146]$";BA$(X);"[145]":X=X+1
  390. 2380 Y=X:FORX=YTOY+6
  391. 2385 IFX>QTHEN2425
  392. 2390 PRINT"[144]"TN$(X):PRINTTAB(5)"[145]"DE$(X):PRINTTAB(31)"[145]$";AM$(X);DA$(X)
  393. 2395 IFMK$(X)=""THENMK$(X)=" "
  394. 2400 PRINTTAB(9)"[145]"MK$(X)" "RM$(X):PRINTTAB(27)"[145]BAL:$";BA$(X);LI$
  395. 2405 NEXTX:PRINT"[144]CURSOR DOWN FOR NEXT PAGE[145][145]"
  396. 2407 GOSUB3690
  397. 2410 IFAN$=CHR$(17)THENX=X-1:GOTO2375
  398. 2415 IFAN$=CHR$(145)THENX=Y-8:GOTO2370
  399. 2420 GOTO2407
  400. 2425 PRINT"[144]   PRESS  RETURN [146][144] TO RETURN TO MENU."
  401. 2427 GOSUB3690
  402. 2430 IFAN$=CHR$(145)THENX=Y-8:GOTO2370
  403. 2435 IFAN$<>CHR$(13)THEN2427
  404. 2440 POKE53281,0
  405. 2445 IFREG$<>"REGISTER"+STR$(A)THEN2260
  406. 2450 GOTO930
  407. 2455 V$=RIGHT$(Z$,3):IFMID$(V$,2,1)="."THEN Z$=Z$+"0":GOTO2485
  408. 2465 IFLEFT$(V$,1)<>"."THENZ$=Z$+".00"
  409. 2467 IFRIGHT$(Z$,1)="."THENZ$=Z$+"00"
  410. 2470 FORZZ=1TOLEN(Z$)
  411. 2475 IFRIGHT$(LEFT$(Z$,ZZ),1)="."THENZ$=LEFT$(Z$,ZZ+2):GOTO2485
  412. 2480 NEXTZZ
  413. 2485 IFLEN(Z$)<8THENZ$=" "+Z$:GOTO2485
  414. 2487 IFLEN(Z$)>8THENZ$=RIGHT$(Z$,8)
  415. 2490 RETURN
  416. 2495 PRINT"[158]ENTER 'A[158]' NOW TO A[158]BORT THIS OPERATION,"
  417. 2505 PRINT"OR PRESS ANY OTHER KEY TO CONTINUE."
  418. 2510 GOSUB3690
  419. 2515 IFAN$="A"THEN930
  420. 2520 BL$="                                      "
  421. 2525 PRINT"[145][145][145]";BL$:PRINTBL$:PRINTBL$:PRINT"[145][145][145][145][145]"
  422. 2530 LA$="S":RETURN
  423. 2535 IFQ=0THENPRINT"THE REGISTER IS EMPTY.":FORT=1TO2000:NEXTT:GOTO2570
  424. 2537 LI$="[195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195]"
  425. 2545 GOSUB885:PRINT"[147][154]      P R I N T   R E G I S T E R   "
  426. 2550 GOSUB210:GOSUB250:GOSUB3690
  427. 2555 IFAN$="A"THEN2570
  428. 2560 IFAN$<>CHR$(13)THEN2550
  429. 2565 GOTO2580
  430. 2570 IFREG$<>"REGISTER"+STR$(A)THENRETURN
  431. 2575 GOTO930
  432. 2580 PRINT"       ***[158] PRINTING REGISTER ***"
  433. 2585 OPEN4,4:PRINT#4,NA$(A):PRINT#4,BN$(A):PRINT#4,"ACCOUNT #";AC$(A)
  434. 2590 PRINT#4:PRINT#4:PRINT#4," T#     DATE   * TRANSACTION & MEMO    ";
  435. 2595 PRINT#4,"                  AMOUNT     BALANCE":PRINT#4,LI$;LI$
  436. 2605 FORX=1TOQ
  437. 2610 IFLEN(TN$(X))<4THENTN$(X)=" "+TN$(X):GOTO2610
  438. 2615 IFMK$(X)=""THENMK$(X)=" "
  439. 2620 PRINT#4,TN$(X);PO$;"07";DA$(X);" ";MK$(X);" ";DE$(X);PO$;"56";"$";AM$(X)
  440. 2625 PRINT#4,PO$;"19";RM$(X);PO$;"67";"$";BA$(X):PRINT#4,LI$;LI$
  441. 2630 NEXTX:PRINT#4:CLOSE4:IFREG$="REGISTER"+STR$(A)THEN930
  442. 2635 GOTO2260
  443. 2645 IFQ=0THENPRINT"THE REGISTER IS EMPTY.":FORT=1TO2000:NEXTT:GOTO930
  444. 2646 PRINT"[147][154]     B A L A N C E   A C C O U N T   ":GOSUB2495
  445. 2650 PRINT"[158]DOES THE TRANSACTION SHOWN BELOW APPEAR"
  446. 2655 PRINT"ON THIS MONTH'S BANK STATEMENT? (Y[158]/N[158])"
  447. 2660 FORX=1TOQ
  448. 2665 IFMK$(X)="*"THEN2725
  449. 2670 IFLEFT$(TN$(X),1)="D"THENPT$="[158]    DEPOSIT":GOTO2685
  450. 2675 IFLEFT$(TN$(X),1)="W"THENPT$="[158] WITHDRAWAL":GOTO2685
  451. 2680 PT$="[158]CHECK #"
  452. 2685 PRINT"                                       ":FORT=1TO300:NEXTT
  453. 2690 IFPT$<>"[158]CHECK #"THEN2700
  454. 2695 PRINT"";PT$;TN$(X):GOTO2705
  455. 2700 PRINT"";PT$
  456. 2705 PRINTTAB(12)"[145][158]ON ";DA$(X)
  457. 2710 PRINTTAB(26)"[145][158]FOR $";AM$(X)
  458. 2715 GOSUB3690:IFAN$="Y"THENMK$(X)="*":GOTO2725
  459. 2720 IFAN$<>"N"THEN2715
  460. 2725 NEXTX
  461. 2730 PRINT"[158]IS THERE A MONTHLY SERVICE CHARGE? (Y[158]/N[158])[145]"
  462. 2735 GOSUB3690
  463. 2740 IFAN$="N"THEN2790
  464. 2745 IFAN$<>"Y"THEN2735
  465. 2750 PRINT"[158]ENTER THE AMOUNT OF THE SERVICE CHARGE"
  466. 2755 PRINT"SHOWN ON THE BANK STATEMENT:":Q=Q+1
  467. 2760 INPUT"[158]AMOUNT: $[157][157]";AM$(Q):Z$=AM$(Q):GOSUB2455:AM$(Q)=Z$
  468. 2770 TN$(Q)="S"+RIGHT$(STR$(VAL(LW$)+1),3):DA$(Q)=TD$
  469. 2775 RM$(Q)="SERVICE CHARGE":DE$(Q)=RM$(Q):CM$(Q)=" ":MK$(Q)="*"
  470. 2780 BA=VAL(BA$(Q-1)):AM=VAL(AM$(Q)):BS=BA-AM:BA$(Q)=STR$(BS)
  471. 2785 W=LEN(TN$(Q)):W=W-1:LW$=RIGHT$(TN$(Q),W):Z$=BA$(Q):GOSUB2455:BA$(Q)=Z$
  472. 2790 OT=VAL(BA$(Q)):FORX=1TOQ
  473. 2795 IFMK$(X)="*"THEN2810
  474. 2800 IFDE$(X)="DEPOSIT"THENOT=OT-VAL(AM$(X)):GOTO2810
  475. 2805 OT=OT+VAL(AM$(X))
  476. 2810 NEXTX:Z$=STR$(OT):GOSUB2455
  477. 2815 PRINT"[158]THE ENDING BALANCE ON THIS MONTH'S"
  478. 2820 PRINT"BANK STATEMENT SHOULD BE $";Z$
  479. 2825 PRINT"[158]IF THIS AGREES WITH THE STATEMENT,"
  480. 2830 PRINT"THEN PRESS  RETURN [146][158]"
  481. 2835 PRINT"IF NOT, PRESS 'A[158]' TO A[158]DJUST BALANCE.[145][145]"
  482. 2840 GOSUB3690:IFAN$=CHR$(13)THEN930
  483. 2845 IFAN$<>"A"THEN2840
  484. 2850 PRINT"WHAT IS THE ENDING BALANCE SHOWN    "
  485. 2855 INPUT"ON THE BANK STATEMENT $[157][157]";BZ$
  486. 2870 Q=Q+1:AJ=VAL(BZ$)-VAL(Z$):Z$=STR$(AJ):GOSUB2455:AM$(Q)=Z$
  487. 2880 Z$=STR$(VAL(BA$(Q-1))+VAL(AM$(Q))):GOSUB2455:BA$(Q)=Z$
  488. 2890 DE$(Q)="BAL. ADJUSTMENT":DA$(Q)=TD$:TN$(Q)="---":MK$(Q)="*":CM$(Q)="-"
  489. 2895 RM$(Q)="PER STATEMENT"
  490. 2900 PRINTCD$;"[158][145][145]YOUR BALANCE HAS BEEN ADJUSTED BY THE"
  491. 2905 PRINT"AMOUNT OF $";AM$(Q);"[158] TO AGREE WITH"
  492. 2910 PRINT"THIS MONTH'S BANK STATEMENT."
  493. 2915 FORT=1TO3000:NEXTT:GOTO930
  494. 2920 INPUT#15,EN,EM$,ET,ES
  495. 2922 IF EN=0 THEN RETURN
  496. 2923 IFNF=1THENNF=0:RETURN
  497. 2924 PRINTCD$;" ERROR ON DISK "
  498. 2925 PRINTEN,EM$,ET,ES
  499. 2926 CLOSE8:FORT=1TO11111:NEXTT:RUN20
  500. 2927 IF RS=64 THENRETURN
  501. 2928 IF RS<>0 THEN2930
  502. 2929 RETURN
  503. 2930 PRINTCD$;"BAD DISK STATUS IS "RS
  504. 2931 CLOSE8:FORT=1TO11111:NEXTT:RUN20
  505. 2950 OPEN8,8,8,"0:"+REG$+",S,R"
  506. 2960 GOSUB2920:IFED=1THEN90
  507. 2965 INPUT#8,QTN$,LD$,LW$,LC$
  508. 2970 GOSUB2920
  509. 2975 Q=VAL(QTN$):IFQ=0THENCLOSE8:RETURN
  510. 2980 FORX=1TOQ
  511. 2985 INPUT#8,DA$(X),TN$(X),DE$(X),CM$(X),RM$(X),AM$(X),BA$(X),MK$(X)
  512. 2990 RS=ST:GOSUB2920:GOSUB2927
  513. 3010 Z$=AM$(X):GOSUB2455:AM$(X)=Z$
  514. 3015 Z$=BA$(X):GOSUB2455:BA$(X)=Z$
  515. 3020 NEXTX:CLOSE8:RETURN
  516. 3035 OPEN8,8,8,"@0:"+REG$+",S,W"
  517. 3045 GOSUB2920
  518. 3050 QTN$=STR$(Q)
  519. 3055 PRINT#8,QTN$;CR$;LD$;CR$;LW$;CR$;LC$
  520. 3065 FORX=1TOQ
  521. 3070 PRINT#8,DA$(X);CR$;TN$(X);CR$;QO$+DE$(X)+QO$;CR$;QO$+CM$(X)+QO$
  522. 3075 PRINT#8,QO$+RM$(X)+QO$;CR$;AM$(X);CR$;BA$(X);CR$;MK$(X)
  523. 3080 GOSUB2920
  524. 3085 NEXTX:CLOSE8:RETURN
  525. 3095 IFMS=1THENRETURN
  526. 3100 OPEN8,8,8,"0:"+BILL$+",S,R"
  527. 3105 GOSUB2920
  528. 3110 INPUT#8,MB$
  529. 3115 GOSUB2920
  530. 3120 M=VAL(MB$):IFM=0THENCLOSE8:RETURN
  531. 3122 FORX=1TOM
  532. 3125 INPUT#8,MDE$(X),MCM$(X),MRM$(X),PF$(X),LP$(X),LN$(X)
  533. 3130 RS=ST:GOSUB2920:GOSUB2927
  534. 3135 NEXTX:CLOSE8:FORX=1TOM
  535. 3140 IFLEFT$(RIGHT$(LP$(X),3),1)<>"."THEN3150
  536. 3145 Z$=LP$(X):GOSUB2455:LP$(X)=Z$
  537. 3150 NEXTX:RETURN
  538. 3165 OPEN8,8,8,"@0:"+BILL$+",S,W"
  539. 3170 GOSUB2920
  540. 3175 PRINT#8,MB$
  541. 3180 GOSUB2920
  542. 3185 FORX=1TOM
  543. 3190 PRINT#8,QO$+MDE$(X)+QO$;CR$;QO$+MCM$(X)+QO$;CR$;QO$+MRM$(X)+QO$;CR$;PF$(X)
  544. 3195 PRINT#8,LP$(X);CR$;LN$(X)
  545. 3200 GOSUB2920:NEXTX:CLOSE8:RETURN
  546. 3210 PRINT"[147][154]      READY TO PRINT CHECK # ";TN$(Q);"   "
  547. 3215 GOSUB210:AD$(1)="":AD$(2)=""
  548. 3220 IFZ%=0THENGOSUB3230:Z%=1:GOTO3285
  549. 3225 GOTO3285
  550. 3230 FOR I=1TO19:READ N1$(I):NEXT
  551. 3235 FOR I=2TO9:READ N2$(I):NEXT
  552. 3240 FOR I=1TO12:READ M$(I):NEXT:RETURN
  553. 3245 :
  554. 3250 DATA ONE,TWO,THREE,FOUR,FIVE,SIX,SEVEN,EIGHT,NINE,TEN,ELEVEN,TWELVE
  555. 3255 DATA THIRTEEN,FOURTEEN,FIFTEEN,SIXTEEN,SEVENTEEN,EIGHTEEN,NINETEEN
  556. 3260 :
  557. 3265 DATA TWENTY,THIRTY,FORTY,FIFTY,SIXTY,SEVENTY,EIGHTY,NINETY
  558. 3270 :
  559. 3275 DATA JANUARY,FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMBER,OCTOBER
  560. 3280 DATA NOVEMBER,DECEMBER
  561. 3285 GOSUB3465:IFAS$="*** AND ***"THENS4=41-LEN(AT$):GOTO3310
  562. 3290 S1=LEN(AS$)/2:S2=LEN(AT$)/2
  563. 3295 IFS1>S2THEN3305
  564. 3300 S3=S2-S1:FORX=1TOS3:AS$=" "+AS$:NEXTX:S4=41-LEN(AS$):GOTO3310
  565. 3305 S3=S1-S2:FORX=1TOS3:AT$=" "+AT$:NEXTX:S4=41-LEN(AS$)
  566. 3310 SP$="":FORX=1TOS4:SP$=SP$+" ":NEXTX
  567. 3320 MM=VAL(LEFT$(DA$(Q),2)):IFMM>11THENMM=12
  568. 3321 IFMM<1THENMM=1
  569. 3325 D$=MID$(DA$(Q),4,2)
  570. 3330 YR$="19"+RIGHT$(DA$(Q),2)
  571. 3335 DT$=M$(MM)+" "+D$+","+YR$
  572. 3340 GOTO3610
  573. 3350 OPEN4,4:FORX=1TO3:PRINT#4:NEXTX
  574. 3355 PRINT#4,TAB(37);DT$
  575. 3360 IFAS$<>"*** AND ***"THEN3370
  576. 3365 PRINT#4:PRINT#4,TAB(5);AT$;SP$;AM$(Q):PRINT#4:GOTO3380
  577. 3370 PRINT#4:PRINT#4,TAB(5);AS$;SP$;AM$(Q)
  578. 3375 PRINT#4,TAB(5);AT$
  579. 3380 PRINT#4:PRINT#4,TAB(9);DE$(Q)
  580. 3385 PRINT#4,TAB(9);AD$(1):PRINT#4,TAB(9);AD$(2)
  581. 3390 PRINT#4,TAB(9);CM$(Q)
  582. 3395 FORX=1TO4:PRINT#4:NEXTX:CLOSE4:PRINT"":RETURN
  583. 3400 RETURN
  584. 3405 PRINT"[158]   BE SURE THE **[158] WERE PRINTED AT THE"
  585. 3410 PRINT"   UPPER LEFT CORNER OF CHECK # ";TN$(Q)
  586. 3415 PRINT"[158]   MAKE ADJUSTMENTS IF NECESSARY,"
  587. 3425 PRINT"[158]   PRESS ANY KEY TO CONTINUE.[145]"
  588. 3430 CLOSE3:OPEN3,4
  589. 3435 PRINT#3,"**";PO$;"50";
  590. 3440 PRINT#3," ":CLOSE3
  591. 3445 GOSUB3690:RETURN
  592. 3465 FOR J=1TO5:W$(J)="":NEXTJ
  593. 3470 CE$=RIGHT$(AM$(Q),2):CA$=LEFT$(AM$(Q),5)
  594. 3475 IFLEFT$(CA$,1)=" "THENCA$=RIGHT$(CA$,4)
  595. 3480 IFLEFT$(CA$,1)=" "THENCA$=RIGHT$(CA$,3)
  596. 3485 IFLEFT$(CA$,1)=" "THENCA$=RIGHT$(CA$,2)
  597. 3490 IFLEFT$(CA$,1)=" "THENCA$=RIGHT$(CA$,1)
  598. 3495 L1=LEN(CA$):U=1:ON L1 GOTO3530,3525,3510,3500
  599. 3500 T=VAL(MID$(CA$,U,1))
  600. 3505 W$(1)=N1$(T)+" THOUSAND ":U=U+1
  601. 3510 T=VAL(MID$(CA$,U,1)):IF T=0 THEN3520
  602. 3515 W$(2)=N1$(T)+" HUNDRED "
  603. 3520 U=U+1
  604. 3525 T1=VAL(MID$(CA$,U,1)):U=U+1
  605. 3530 T2=VAL(MID$(CA$,U,1))
  606. 3535 IF T1=0 THEN3550
  607. 3540 IF T1=1 THEN T3=10+T2:W$(5)=N1$(T3):GOTO3565
  608. 3545 W$(3)=N2$(T1)
  609. 3550 IF T2=0 THEN W$(5)=W$(3):GOTO3565
  610. 3555 W$(4)=N1$(T2):IF T1=0 THEN W$(5)=W$(4):GOTO3565
  611. 3560 W$(5)=W$(3)+"-"+W$(4)
  612. 3565 AS$="*** "+W$(1)+W$(2)+"AND ***":SG$=" & ":IFW$(5)=""THENSG$=""
  613. 3570 AT$="*** "+W$(5)+SG$+CE$+"/100 DOLLARS ***"
  614. 3575 T=0:T1=0:T2=0
  615. 3580 RETURN
  616. 3585 PRINT"[158]ENTER 1ST LINE OF 2 LINE ADDRESS:"
  617. 3590 GOSUB160:AD$(1)=AN$
  618. 3595 PRINT"[158]ENTER 2ND LINE OF ADDRESS:"
  619. 3600 GOSUB160:AD$(2)=AN$
  620. 3605 RETURN
  621. 3610 PRINT"[147][154]      READY TO PRINT CHECK # ";TN$(Q);"   "
  622. 3615 SL$(1)=" PRINT CHECK "
  623. 3620 SL$(2)=" ENTER ADDRESS FOR CHECK "
  624. 3625 SL$(3)=" PRINT ASTRISKS FOR ALIGNMENT "
  625. 3630 SL$(4)=" ABORT PRINTING "
  626. 3635 AN=1:MN=4:C3$="[145][145][145][145][145][145][145]":C4$="":C5$="":GOSUB3720
  627. 3665 IFAN=1THENGOTO3350
  628. 3670 IFAN=2THENGOSUB3585:GOTO3610
  629. 3675 IFAN=3THENGOSUB3405:GOTO3610
  630. 3680 IFAN=4THENRETURN
  631. 3690 GETAN$:IFAN$=""THEN3690
  632. 3695 RETURN
  633. 3702 CLOSE8:CLOSE15:POKE198,4
  634. 3703 PRINT"[147][144]LOAD"CHR$(34)"B.A. UTIL.";
  635. 3704 PRINT CHR$(34)",8";
  636. 3705 POKE631,13:POKE632,82:POKE633,117:POKE634,13
  637. 3706 END
  638. 3710 CLOSE8:CLOSE15:POKE198,1
  639. 3711 PRINT"[147][144]LOAD"CHR$(34)"B.A. INFO.";
  640. 3712 PRINT CHR$(34)",8,1";
  641. 3713 POKE631,13
  642. 3714 END
  643. 3720 PRINT"[158]   CHOOSE WITH CURSOR KEYS:"
  644. 3725 FORX=1TOMN:PRINTDN$;S7$;C1$;SL$(X):NEXTX
  645. 3730 PRINT"[158]   PRESS  RETURN [146][158] TO ENTER SELECTION.[145]"
  646. 3735 PRINT"";C5$;S7$;C2$;SL$(1)
  647. 3740 GETAN$:IFAN$=""THEN3740
  648. 3745 IFAN$=CHR$(13)THENAN$=STR$(AN):RETURN
  649. 3750 IFAN$=CHR$(145)THEN3760
  650. 3755 IFAN$=CHR$(17)THEN3780
  651. 3757 GOTO3740
  652. 3760 LN=AN:AN=AN-1:IFAN=0THENAN=MN
  653. 3765 PRINT"[145]";S7$;C1$;SL$(LN)
  654. 3770 IFLN=1THENPRINTC4$;S7$;C2$;SL$(AN):GOTO3740
  655. 3775 PRINTUP$;"[145][145]";S7$;C2$;SL$(AN):GOTO3740
  656. 3780 LN=AN:AN=AN+1:IFAN=MN+1THENAN=1
  657. 3785 PRINT"[145]";S7$;C1$;SL$(LN)
  658. 3790 IFLN=MNTHENPRINTC3$;S7$;C2$;SL$(AN):GOTO3740
  659. 3795 PRINTDN$;"       ";C2$;SL$(AN):GOTO3740
  660. 3800 IFQ=0THENPRINT"THE REGISTER IS EMPTY.":FORT=1TO2000:NEXTT:GOTO930
  661. 3801 H=0:FORL=1TOQ:IFMK$(L)<>"*"THENH=1
  662. 3802 NEXTL:IFH=1THENX=1:GOTO3805
  663. 3803 PRINT"ALL TRANSACTIONS HAVE CLEARED THE BANK."
  664. 3804 FORT=1TO2000:NEXTT:GOTO930
  665. 3805 PRINT"[147][154]  T R A N S A C T I O N   E D I T O R  "
  666. 3807 PRINT"[158]   CHOOSE WITH CURSOR KEYS:":V=1
  667. 3810 IFX=Q+1THENX=1
  668. 3811 IFX=0THENX=Q
  669. 3813 PRINT"[155]                                        "
  670. 3814 PRINT"[145]                                        [146][157][157][145][145]"
  671. 3815 PRINT"[155]"TN$(X):PRINTTAB(5)"[145][145]"DE$(X):PRINTTAB(31)"[145][145]$";AM$(X);DA$(X)
  672. 3820 IFMK$(X)=""THENMK$(X)=" "
  673. 3825 PRINTTAB(9)"[145]"MK$(X)" "RM$(X):PRINTTAB(27)"[145]BAL:$";BA$(X)
  674. 3830 PRINT"[158]   PRESS  RETURN [146][158] TO ENTER SELECTION."
  675. 3835 GETAN$:IFAN$=""THEN3835
  676. 3840 IFAN$=CHR$(13)THEN3865
  677. 3845 IFAN$=CHR$(145)THENX=X-1:V=-1:GOTO3860
  678. 3850 IFAN$=CHR$(17)THENX=X+1:V=1:GOTO3860
  679. 3855 GOTO3835
  680. 3860 PRINT"":GOTO3810
  681. 3865 SL$(1)=" SELECT ANOTHER TRANSACTION "
  682. 3866 SL$(2)=" CHANGE TRANSACTION NAME "
  683. 3867 SL$(3)=" CHANGE TRANSACTION MEMO "
  684. 3868 SL$(4)=" EDIT TRANSACTION DATE "
  685. 3869 SL$(5)=" EDIT TRANSACTION AMOUNT "
  686. 3870 SL$(6)=" DELETE THIS TRANSACTION "
  687. 3871 SL$(7)=" RETURN TO MAIN MENU "
  688. 3875 AN=1:MN=7:C3$="[145][145][145][145][145][145][145][145][145][145][145][145][145]":C4$="":C5$="":F=X
  689. 3877 PRINT"                                       [145][145]":GOSUB3725:X=F
  690. 3880 PRINT""
  691. 3885 ON AN GOTO3805,3890,3890,3940,3940,4000,930
  692. 3890 PRINT"   [158]ENTER NEW LINE, THEN PRESS  RETURN ":GOSUB160
  693. 3894 IFAN=2THENDE$(X)=AN$:GOTO3998
  694. 3897 IFAN=3THENRM$(X)=AN$:GOTO3998
  695. 3900 OO=0:IFMS<>1THENRETURN
  696. 3905 FORO=1TOM:IFLN$(O)<>TN$(X)THEN3915
  697. 3910 OO=O:O=M
  698. 3915 NEXTO:RETURN
  699. 3940 ET$=DA$(X):IFAN=5THENET$=AM$(X)
  700. 3945 PRINT"   [158]EDIT DATA, THEN PRESS  RETURN [146]    "
  701. 3950 PRINT"  "ET$
  702. 3955 INPUT"[145]";ET$
  703. 3960 IFAN=5THEN3975
  704. 3965 IFET$=DA$(X)THEN3805
  705. 3967 GOSUB3900:IFOO<>0THENPF$(OO)=ET$:SV=1
  706. 3970 DA$(X)=ET$:GOTO3998
  707. 3975 IFET$=AM$(X)THEN3805
  708. 3982 ZI$=ET$:PRINT"[145]ADJUSTING BALANCES....PLEASE WAIT.[145]"
  709. 3983 ZI=VAL(ZI$)-VAL(AM$(X))
  710. 3984 IFLEFT$(TN$(X),1)="D"THEN3990
  711. 3985 IFVAL(ZI$)>VAL(AM$(X))THEN3993
  712. 3986 IFVAL(ZI$)<VAL(AM$(X))THENZI=ZI*-1:GOTO3994
  713. 3987 GOTO3992
  714. 3990 IFVAL(ZI$)>VAL(AM$(X))THEN3994
  715. 3991 IFVAL(ZI$)<VAL(AM$(X))THENZI=ZI*-1:GOTO3993
  716. 3992 IFVAL(ZI$)=VAL(AM$(X))THEN3805
  717. 3993 FORF=XTOQ:ZB=VAL(BA$(F)):Z$=STR$(ZB-ZI):GOSUB2455:BA$(F)=Z$:NEXTF:GOTO3995
  718. 3994 FORF=XTOQ:ZB=VAL(BA$(F)):Z$=STR$(ZB+ZI):GOSUB2455:BA$(F)=Z$:NEXTF
  719. 3995 Z$=ZI$:GOSUB2455:AM$(X)=Z$
  720. 3996 GOSUB3900:IFOO<>0THENLP$(OO)=Z$:SV=1
  721. 3997 PRINT"[145][145]":GOSUB1750
  722. 3998 LA$="S":GOTO3805
  723. 4000 PRINT"     [158]PROCEED WITH DELETION? (Y[158]/N[158])     "
  724. 4005 GOSUB3690:IFAN$="N"THEN3805
  725. 4010 IFAN$<>"Y"THEN4005
  726. 4012 PRINT"ADJUSTING TRANSACTIONS...PLEASE WAIT."
  727. 4015 IFLEFT$(TN$(X),1)="D"THEN4027
  728. 4017 FORF=X+1TOQ
  729. 4020 ZB=VAL(AM$(X)):ZC=VAL(BA$(F)):Z$=STR$(ZB+ZC):GOSUB2455:BA$(F)=Z$:NEXTF
  730. 4025 GOTO4035
  731. 4027 FORF=X+1TOQ
  732. 4030 ZB=VAL(AM$(X)):ZC=VAL(BA$(F)):Z$=STR$(ZC-ZB):GOSUB2455:BA$(F)=Z$:NEXTF
  733. 4035 FORF=XTOQ-1
  734. 4040 DA$(F)=DA$(F+1):TN$(F)=TN$(F+1):DE$(F)=DE$(F+1):CM$(F)=CM$(F+1)
  735. 4045 RM$(F)=RM$(F+1):AM$(F)=AM$(F+1):BA$(F)=BA$(F+1):MK$(F)=MK$(F+1)
  736. 4050 NEXTF:DA$(Q)="":TN$(Q)="":DE$(Q)="":CM$(Q)="":RM$(Q)="":AM$(Q)=""
  737. 4055 BA$(Q)="":MK$(Q)="":Q=Q-1
  738. 4056 PRINT"[145][145]":GOSUB1750
  739. 4060 LA$="S":GOTO3805
  740. 4100 IFQ=0THENPRINT"THE REGISTER IS EMPTY.":FORT=1TO2000:NEXTT:GOTO1400
  741. 4101 GOSUB885:PRINT"[147][154]     PRINT MONTHLY BILLS SUMMARY   "
  742. 4105 GOSUB210:GOSUB250
  743. 4107 LI$="[195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195]"
  744. 4110 GETAN$:IFAN$=""THEN4110
  745. 4115 IFAN$="A"THEN1400
  746. 4120 IFAN$<>CHR$(13)THEN4110
  747. 4121 PRINT"        *** [158]PRINTING SUMMARY ***":OPEN4,4
  748. 4128 TP=0:Z$="":FORX=1TOM:IFLP$(X)=" UNPAID "THEN4130
  749. 4129 TP=TP+VAL(LP$(X))
  750. 4130 NEXTX:Z$=STR$(TP):GOSUB2455
  751. 4135 PRINT#4,"  ";NA$(A):PRINT#4,"  ";BN$(A):PRINT#4,"  ACCOUNT #";AC$(A)
  752. 4140 PRINT#4:PRINT#4:PRINT#4,LI$;LI$:PRINT#4
  753. 4145 PRINT#4,"            M O N T H L Y   B I L L S   S U M M A R Y - ";TD$
  754. 4150 PRINT#4:PRINT#4,LI$;LI$:PRINT#4
  755. 4155 FORX=1TOM
  756. 4160 PRINT#4,"  ";MDE$(X);PO$;"33";MRM$(X);PO$;"56";"AMOUNT PAID: $";LP$(X)
  757. 4170 PRINT#4,"  ";MCM$(X);PO$;"33";"DATE PAID: "PF$(X);PO$;"56";"CHECK #";LN$(X)
  758. 4175 PRINT#4:NEXTX
  759. 4185 PRINT#4:PRINT#4,LI$;LI$
  760. 4190 PRINT#4,"               T O T A L   A M O U N T   P A I D  :  $";Z$
  761. 4195 PRINT#4,LI$;LI$:PRINT#4:CLOSE4:GOTO1400
  762. 4200 PRINT"[147]    [154]   M O N T H L Y   B I L L S   "
  763. 4202 PRINT"[158]   CHOOSE WITH CURSOR KEYS:"
  764. 4205 N=AN:FORX=1TOM:SL$(X)=" "+MDE$(X)+" ":NEXTX:SL$(M+1)=" RETURN TO MENU "
  765. 4215 AN=1:MN=M+1:C5$=""
  766. 4216 C3$="":FORX=1TOMN:C3$=C3$+"[145]":NEXTX
  767. 4217 C4$="":FORX=1TOMN-2:C4$=C4$+"":NEXTX
  768. 4235 UP$="":DN$="":GOSUB3725:UP$="[145]":DN$=""
  769. 4240 IFN=1THEN1470
  770. 4245 IFN=4THEN1625
  771.